In a clustered node system, some cluster-wide operations, such as configuration operations, require changing the local state of each node in the cluster. In cluster systems with extensive configuration, updating the local state of a node may involve multiple changes and a large number of objects.
For example, a clustered Network Attached Storage (NAS) system manages many Network Files System (NFS) exports, being the objects. These objects reside in large configuration files on the nodes, and are updated as part of some configuration changes. Another example is network configuration, which is defined locally on each node in the cluster and consists of many objects and files.
A problem may occur when one or more of the nodes in the cluster is not available during the operation. The local configuration of these nodes can be be updated before they are returned to the cluster. Therefore, cluster operations and node synchronization co-exist in a clustered node system, both accessing the same cluster configuration and other cluster resources.
However, extensive operations in clustered node systems stretch over long times and typically cannot be treated as atomic operations. Similarly, the corresponding synchronization of a node can also take a long time.
Some known methods for solving the problem of concurrent cluster operations and node synchronization block cluster-wide operations in the case that not all the nodes are available. This can be done in order to, for example, avoid inconsistency between the configurations of the nodes. One disadvantage is of this approach is that new operations in the cluster typically cannot start until one or more nodes are synchronized and returned to the cluster.
Other known methods block node synchronization during cluster-wide operations. One disadvantage with these methods is reduced performance of the cluster, as, for example, one or more nodes cannot serve clients.